1. Introducción a AWS Elastic Beanstalk
AWS Elastic Beanstalk es un servicio administrado que permite desplegar aplicaciones web automáticamente sin configurar manualmente toda la infraestructura.
El objetivo principal es simplificar el despliegue de aplicaciones.
Qué hace Elastic Beanstalk
- Crea servidores EC2
- Configura balanceadores
- Gestiona Auto Scaling
- Configura monitoreo
- Despliega aplicaciones
Idea principal
Subes código
↓
Elastic Beanstalk crea infraestructura
↓
Aplicación funcionando
Mini-test
¿Qué hace Elastic Beanstalk?
2. Qué administra AWS y qué administras tú
AWS administra
- Infraestructura física
- Servidores EC2
- Sistema operativo
- Balanceadores
- Auto Scaling
- Parches básicos
Tú administras
- Código aplicación
- Configuración aplicación
- Variables entorno
- Lógica backend
| Tarea | Responsable |
|---|---|
| Infraestructura | AWS |
| Aplicación | Desarrollador |
Mini-test
¿Quién administra el código de la aplicación?
3. Arquitectura interna de Elastic Beanstalk
Cuando desplegamos una aplicación, Elastic Beanstalk crea automáticamente múltiples servicios AWS.
Infraestructura típica
Usuario
↓
Load Balancer
↓
EC2 Auto Scaling
↓
Aplicación
Servicios usados internamente
- EC2
- Auto Scaling
- CloudWatch
- Elastic Load Balancer
- S3
Importante
Elastic Beanstalk NO reemplaza EC2.
Simplemente automatiza su administración.
Mini-test
¿Qué servicio crea automáticamente Elastic Beanstalk?
4. EC2 manual vs Elastic Beanstalk
| EC2 Manual | Elastic Beanstalk |
|---|---|
| Configuras servidores | Automático |
| Despliegue manual | Despliegue automático |
| Escalado manual | Auto Scaling |
| Más control | Más simplicidad |
Ventaja EC2
Control total sobre el entorno.
Ventaja Beanstalk
Despliegue muchísimo más rápido.
Mini-test
¿Qué ventaja principal tiene Beanstalk?
5. Lenguajes soportados
Elastic Beanstalk soporta múltiples tecnologías modernas.
- Node.js
- Python
- Java
- PHP
- .NET
- Ruby
- Docker
- Go
Servidores web utilizados
- NGINX
- Apache
- IIS
- Puma
Mini-test
¿Qué tecnología soporta Elastic Beanstalk?
6. Node.js explicado desde cero
Node.js es un entorno que permite ejecutar JavaScript fuera del navegador.
Normalmente JavaScript se ejecuta en páginas web dentro del navegador del usuario.
Con Node.js
JavaScript puede ejecutarse como backend en servidores.
Ejemplo sencillo
const http = require('http');
const server = http.createServer((req, res) => {
res.write('Hola desde Node.js');
res.end();
});
server.listen(3000);
Qué hace este código
- Crea servidor web
- Escucha peticiones HTTP
- Devuelve texto
Explicación línea por línea
require('http')
Carga el módulo HTTP integrado.
createServer()
Crea servidor web.
req
Representa la petición del usuario.
res
Representa la respuesta que enviamos.
listen(3000)
Hace que el servidor escuche en el puerto 3000.
Qué hace Elastic Beanstalk con Node.js
Beanstalk detecta automáticamente la aplicación Node.js, instala dependencias y ejecuta el servidor.
Mini-test
¿Qué permite Node.js?
7. Crear una aplicación en Elastic Beanstalk
Paso 1
Entrar al servicio Elastic Beanstalk.
Paso 2
Seleccionar “Create Application”.
Paso 3
Nombre aplicación:
mi-app
Paso 4
Elegir plataforma:
Node.js
Paso 5
Subir código ZIP.
Paso 6
Beanstalk crea automáticamente toda la infraestructura.
Mini-test
¿Qué formato suele subirse?
8. Despliegue automático
Beanstalk automatiza completamente el deployment.
Qué ocurre automáticamente
- Subida código
- Instalación dependencias
- Reinicio aplicación
- Configuración servidor web
Ejemplo Node.js
package.json
Este archivo define dependencias del proyecto.
{
"name":"app",
"dependencies":{
"express":"^4.18.0"
}
}
Beanstalk ejecuta automáticamente:
npm install
Mini-test
¿Qué archivo usa Node.js para dependencias?
9. Escalado automático
Elastic Beanstalk puede aumentar o reducir servidores automáticamente.
Funcionamiento
Mucho tráfico
↓
Auto Scaling crea EC2 nuevas
Ventajas
- Mayor disponibilidad
- Adaptación automática
- Menor intervención manual
Escalado horizontal
Se añaden más servidores.
Escalado vertical
Se aumenta potencia servidor.
Mini-test
¿Qué hace Auto Scaling?
10. Balanceador de carga
El balanceador distribuye tráfico entre múltiples servidores.
Objetivo
- Evitar saturación
- Mayor disponibilidad
- Distribución tráfico
Funcionamiento
Usuarios
↓
Load Balancer
↙ ↘
EC2 EC2
Mini-test
¿Qué hace un Load Balancer?
11. Logs y monitoreo
Elastic Beanstalk utiliza CloudWatch para monitorización.
Información disponible
- CPU
- Memoria
- Errores aplicación
- Logs servidor
- Tiempo respuesta
Logs Node.js
console.log("Servidor iniciado");
Este mensaje aparecerá en logs CloudWatch.
Mini-test
¿Qué servicio monitoriza Elastic Beanstalk?
12. Variables de entorno
Las variables de entorno permiten almacenar configuración sin modificar código.
Ejemplos
- Contraseñas
- URLs APIs
- Puertos
- Claves acceso
Ejemplo Node.js
const puerto = process.env.PORT;
Beanstalk suele definir automáticamente el puerto correcto.
Mini-test
¿Dónde deben guardarse contraseñas?
13. Ventajas, desventajas y costes
Ventajas
- Despliegue rápido
- Escalado automático
- Integración AWS
- Poca administración
Desventajas
- Menos control
- Más difícil optimización avanzada
- Infraestructura parcialmente oculta
Costes
Elastic Beanstalk en sí no suele cobrarse directamente.
Pagamos por los recursos utilizados:
- EC2
- Load Balancer
- S3
- Transferencia datos
Mini-test
¿Qué recursos generan costes?
14. Arquitectura moderna con Beanstalk
Ejemplo completo
Usuarios
↓
CloudFront
↓
Load Balancer
↓
Elastic Beanstalk
↓
EC2 Auto Scaling
↓
RDS
Ventajas arquitectura
- Escalable
- Alta disponibilidad
- Automatizada
- Integrada AWS
Conclusión importante
Elastic Beanstalk simplifica muchísimo despliegues web modernos sin obligar al desarrollador a administrar manualmente toda la infraestructura.
Mini-test
¿Qué utiliza internamente Elastic Beanstalk?